單元測試的本質與價值:
最小隔離單元:針對程式中的獨立方法(通常是核心業務邏輯)進行自動化驗證,不依賴外部資料庫、網路或實體檔案。
重構防護網:確保未來修改底層程式碼或擴充功能時,既有邏輯不會被意外破壞(防止 Regression 迴歸錯誤)。
xUnit 核心屬性與架構:
[Fact]:標準測試方法標記,代表此測試不帶參數、永遠預期特定行為。
[Theory] 與 [InlineData]:參數化測試(Data-Driven Test),同一個測試邏輯可注入多組不同的輸入值與預期輸出,大幅減少重複程式碼。
測試類別生命週期:xUnit 在執行每個測試方法時都會重新實體化測試類別(Constructor 等同於 Setup),確保各測試案例間狀態互不干擾。
AAA 三段式結構(Arrange-Act-Assert):
Arrange(安排/準備):建立物件、初始化變數、設定測試資料與依賴項。
Act(操作/執行):呼叫待測的核心方法,取得實際運算結果或狀態變更。
Assert(斷言/驗證):使用 Assert.Equal()、Assert.True()、Assert.Throws() 等方法驗證結果是否符合預期。
例外驗證(Exception Testing):
商業邏輯遇到非法輸入時應拋出例外,單元測試需使用 Assert.Throws(() => ...) 確認例外是否在正確的時機被觸發。
專案設定與套件安裝
在方案中建立一個獨立的測試專案(例如 EX.Tests):
實作範例
如何在 Visual Studio 中執行測試

一、被測試的核心商業邏輯(待測目標)
二、xUnit 測試案例實作

結果